package cn.csc.module.pay.controller.admin.drawcash.vo;

import lombok.*;

import java.math.BigInteger;
import java.time.LocalDateTime;
import java.util.*;
import java.math.BigDecimal;
import java.math.BigDecimal;
import io.swagger.annotations.*;
import javax.validation.constraints.*;

/**
* 提款申请记录 Base VO，提供给添加、修改、详细的子 VO 使用
* 如果子 VO 存在差异的字段，请不要添加到这里，影响 Swagger 文档生成
*/
@Data
public class PayDrawCashBaseVO {

    @ApiModelProperty(value = "商户编号", required = true)
    @NotNull(message = "商户编号不能为空")
    private BigInteger merchantId;

    @ApiModelProperty(value = "外部商户ID", required = true)
    @NotNull(message = "外部商户ID不能为空")
    private String appUserId;

    @ApiModelProperty(value = "提款类型 ,1个人，2公司")
    private Integer drawType;

    @ApiModelProperty(value = "商户生成提款流水号")
    private String serialNo;

    @ApiModelProperty(value = "本地系统生成的流水号")
    private String drawNo;

    @ApiModelProperty(value = "见证宝返回提款流水号")
    private String serialSeq;

    @ApiModelProperty(value = "打款时间")
    private LocalDateTime payDate;

    @ApiModelProperty(value = "银行卡姓名")
    private String acctName;

    @ApiModelProperty(value = "会员证件类型")
    private String memberGlobalType;

    @ApiModelProperty(value = "会员证件号码")
    private String memberGlobalId;

    @ApiModelProperty(value = "银行卡号")
    private String memberAcctNo;

    @ApiModelProperty(value = "提款金额")
    private BigDecimal amount;

    @ApiModelProperty(value = "提款描述")
    private String body;

    @ApiModelProperty(value = "状态(0:待提现 1:提款成功,2:提款失败,3:提现中或者新建,4:取消提款,5:退单)")
    private Integer status;

    @ApiModelProperty(value = "提现手续费用")
    private BigDecimal handFee;

    @ApiModelProperty(value = "提现描述信息(记录提现异常消息)")
    private String drawMsg;

    @ApiModelProperty(value = "定时状态")
    private Integer taskStatus;

    @ApiModelProperty(value = "定时失败次数")
    private int taskNum;

}
